home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 027a / dgeclc.zip / DGECLC.C < prev   
Text File  |  1991-05-20  |  26KB  |  1,216 lines

  1. /*
  2. ************************************************************************
  3.  
  4.                                 DGECLC.C
  5.  
  6.          dGE Interface for combined Clipper and C applications
  7.  
  8.                    (c) 1991 Pinnacle Publishing, Inc.
  9.  
  10. ************************************************************************
  11. */
  12.  
  13. typedef int (*PFI)();
  14.  
  15. int     DGEMAINVGA();           /* dGE drivers */
  16. int     DGEMAINCGM();
  17. int     DGEMAINCGC();
  18. int     DGEMAINHRC();
  19. int     dgenul();               /* NUL driver */
  20.  
  21. int rval, stlen=0;
  22. char *st=0;
  23.  
  24. PFI dgemgen[] =
  25. {
  26.   DGEMAINHRC,
  27.   DGEMAINCGM,
  28.   dgenul,
  29.   DGEMAINVGA,
  30.   DGEMAINVGA,
  31. };
  32.  
  33. double  dgeatof();
  34.  
  35. int     dgedid = 0;
  36. int     dgeut = -1;
  37.  
  38. int dgenul()
  39. { return 6; }
  40.  
  41. /*----------------------------------------
  42. **      SETVIDEO  f 68
  43. ** 3 = HRC, 4 = CGM, 5 = CGC, 6 = EGA, 7 = VGA
  44. **----------------------------------------
  45. */
  46. int setvideo(int a)
  47. {
  48.   dgedid = a - 3; if(dgedid < 0 || dgedid > 4) goto out;
  49.   rval = (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 68);
  50.   if(rval != 6) dgeut = 0;
  51.   out: return rval;
  52. }
  53.  
  54. /*----------------------
  55. **      SETHIRES  f 0
  56. **----------------------
  57. */
  58. int sethires(int a)
  59. {
  60.   if (dgeut) dgeinst();
  61.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 0);
  62. }
  63.  
  64. /*----------------------
  65. **      SETTEXT f 1
  66. **----------------------
  67. */
  68. int settext()
  69. {
  70.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 1);
  71. }
  72.  
  73. /*----------------------
  74. **      DISKFILE f 2
  75. **----------------------
  76. */
  77. int diskfile(int a,char *st)
  78. {
  79.   stlen = dgestlen(st);
  80.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 2);
  81. }
  82.  
  83. /*----------------------
  84. **      PRINTSCRN f 3
  85. **----------------------
  86. */
  87. int printscrn()
  88. {
  89.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 3);
  90. }
  91.  
  92. /*----------------------
  93. **      LOADCSET  f 4
  94. **----------------------
  95. */
  96. int loadcset(int a,char *st)
  97. {
  98.   stlen = dgestlen(st);
  99.   if (dgeut) dgeinst();
  100.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 4);
  101. }
  102.  
  103. /*----------------------
  104. **      GETSIN    f 7
  105. **----------------------
  106. */
  107. double getsin(int a,int b)
  108. {
  109.   int i, stlen=14; char st[15];
  110.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i]=0;
  111.   if (dgeut) dgeinst();
  112.   rval = (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 5);
  113.   return dgeatof(st);
  114. }
  115.  
  116. /*----------------------
  117. **      DRAWLINE f 6
  118. **----------------------
  119. */
  120. int drawline(int a,int b,int c,int d,int e,int f,int g)
  121. {
  122.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 6);
  123. }
  124.  
  125. /*----------------------
  126. **      DRAWCIRCLE f 7
  127. **----------------------
  128. */
  129. int drawcircle(int a,int b,int c,int d,int e,int f,int g,int h)
  130. {
  131.   return (*dgemgen[dgedid])(st,stlen,h,g,f,e,d,c,b,a, 7);
  132. }
  133.  
  134. /*----------------------
  135. **      SHADE f 8
  136. **----------------------
  137. */
  138. int shade(int a,int b,int c,int d)
  139. {
  140.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 8);
  141. }
  142.  
  143. /*----------------------
  144. **      BOXFILL  f 9
  145. **----------------------
  146. */
  147. int boxfill(int a,int b,int c,int d,int e,int f)
  148. {
  149.   return (*dgemgen[dgedid])(st,stlen,0,0,f,e,d,c,b,a, 9);
  150. }
  151.  
  152. /*----------------------
  153. **      CLRSCREEN f 10
  154. **----------------------
  155. */
  156. int clrscreen()
  157. {
  158.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 10);
  159. }
  160.  
  161. /*----------------------
  162. **      CLRLINE f 11
  163. **----------------------
  164. */
  165. int clrline(int a,int b,int c)
  166. {
  167.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 11);
  168. }
  169.  
  170. /*----------------------
  171. **      CLRWINDOW f 12
  172. **----------------------
  173. */
  174. int clrwindow(int a,int b,int c,int d)
  175. {
  176.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 12);
  177. }
  178.  
  179. /*----------------------
  180. **      XYAXES f 13
  181. **----------------------
  182. */
  183. int xyaxes(int a,int b,int c,int d,int e,int f,int g,int h)
  184. {
  185.   return (*dgemgen[dgedid])(st,stlen,h,g,f,e,d,c,b,a, 13);
  186. }
  187.  
  188. /*----------------------
  189. **      POLARAXES  f 14
  190. **----------------------
  191. */
  192. int polaraxes(int a,int b,int c,int d,int e)
  193. {
  194.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 14);
  195. }
  196.  
  197. /*----------------------
  198. **      GETCHR  f 15  (GETCHAR)
  199. **----------------------
  200. */
  201. int getchr(int a)
  202. {
  203.   int stlen=1; char st[2];
  204.   st[0]=' ';st[1]=0;
  205.   if (dgeut) dgeinst();
  206.   rval = (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 15);
  207.   return (int) st[0];
  208. }
  209.  
  210. /*----------------------
  211. **      GETSTRING f 16
  212. **----------------------
  213. */
  214. char *getstring(int a,int b,int c,int d,int e)
  215. {
  216.   static char st[81];
  217.   (*dgemgen[dgedid])(st,80,0,0,0,e,d,c,b,a, 16);
  218.   return st;
  219. }
  220.  
  221. /*----------------------
  222. **      SAYSTRING f 17
  223. **----------------------
  224. */
  225. int saystring(int a,int b,int c,int d,int e,char *st)
  226. {
  227.   stlen = dgestlen(st);
  228.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 17);
  229. }
  230.  
  231. /*----------------------
  232. **      SAYICON
  233. **      This function is omitted from 'C' library
  234. **      Use Drawicon()
  235. **----------------------
  236. */
  237.  
  238. /*----------------------
  239. **      DATARESET f 19
  240. **----------------------
  241. */
  242. int datareset()
  243. {
  244.   if (dgeut) dgeinst();
  245.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 19);
  246. }
  247.  
  248. /*----------------------
  249. **      DATASTORE f 20
  250. **----------------------
  251. */
  252. int datastore(int a,int b,int c,int d)
  253. {
  254.   if (dgeut) dgeinst();
  255.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 20);
  256. }
  257.  
  258. /*----------------------
  259. **      PIECHART
  260. **----------------------
  261. */
  262. int piechart(int a,int b,int c)
  263. {
  264.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 21);
  265. }
  266.  
  267. /*----------------------
  268. **      BARGRAPH f 22
  269. **----------------------
  270. */
  271. int bargraph(int a,int b,int c,int d,int e)
  272. {
  273.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 22);
  274. }
  275.  
  276. /*----------------------
  277. **      XYGRAPH f 23
  278. **----------------------
  279. */
  280. int xygraph(int a,int b,int c,int d,int e)
  281. {
  282.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 23);
  283. }
  284.  
  285. /*----------------------
  286. **      POLARGRAPH f 24
  287. **----------------------
  288. */
  289. int polargraph(int a,int b,int c,int d,int e)
  290. {
  291.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 24);
  292. }
  293.  
  294. /*----------------------
  295. **      STATS f 25
  296. **----------------------
  297. */
  298. int stats(int a,int b,int c,int d)
  299. {
  300.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 25);
  301. }
  302.  
  303. /*----------------------
  304. **      BESTFIT f 26
  305. **----------------------
  306. */
  307. int bestfit(int a,int b,int c,int d)
  308. {
  309.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 26);
  310. }
  311.  
  312. /*----------------------
  313. **      POLYLINE f 27
  314. **----------------------
  315. */
  316. int polyline(int a,int b,int c,int d,int e)
  317. {
  318.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 27);
  319. }
  320.  
  321. /*----------------------
  322. **      STXCHAR f 28
  323. **  (Internal function)
  324. **----------------------
  325. */
  326. int stxchar(int a,int b,int c,int d,int e,int f,int g)
  327. {
  328.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 28);
  329. }
  330.  
  331. /*----------------------
  332. **      SETPAL f 29
  333. **----------------------
  334. */
  335. int setpal(int a,int b,int c)
  336. {
  337.   if (dgeut) dgeinst();
  338.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 29);
  339. }
  340.  
  341. /*----------------------
  342. **      SETVER f 30
  343. **----------------------
  344. */
  345. int setver(int a)
  346. {
  347.   if (dgeut) dgeinst();
  348.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 30);
  349. }
  350.  
  351. /*----------------------
  352. **      HLCGRAPH f 31
  353. **----------------------
  354. */
  355. int hlcgraph(int a,int b,int c,int d)
  356. {
  357.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 31);
  358. }
  359.  
  360. /*----------------------
  361. **      SETWIN f 32
  362. **----------------------
  363. */
  364. int setwin(int a,int b,int c,int d)
  365. {
  366.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 32);
  367. }
  368.  
  369. /*----------------------
  370. **      SETDELIM f 33
  371. **----------------------
  372. */
  373. int setdelim(int a)
  374. {
  375.   if (dgeut) dgeinst();
  376.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 33);
  377. }
  378.  
  379. /*----------------------
  380. **      FIXPOS f 34
  381. **----------------------
  382. */
  383. int fixpos(int a,int b)
  384. {
  385.   if (dgeut) dgeinst();
  386.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 34);
  387. }
  388.  
  389. /*----------------------
  390. **      MOVEVEC f 35
  391. **----------------------
  392. */
  393. int movevec(int a,int b)
  394. {
  395.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 35);
  396. }
  397.  
  398. /*----------------------
  399. **      DRAWVEC f 36
  400. **----------------------
  401. */
  402. int drawvec(int a,int b,int c,int d,int e,int f)
  403. {
  404.   return (*dgemgen[dgedid])(st,stlen,0,0,f,e,d,c,b,a, 36);
  405. }
  406.  
  407. /*----------------------
  408. **      POLYVEC f 37
  409. **----------------------
  410. */
  411. int polyvec(int a,int b,int c,int d,int e,int f,int g)
  412. {
  413.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 37);
  414. }
  415.  
  416. /*----------------------
  417. **      VECSTRING f 38
  418. **----------------------
  419. */
  420. int vecstring(int a,int b,int c,int d,int e,char *st)
  421. {
  422.   stlen = dgestlen(st);
  423.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 38);
  424. }
  425.  
  426. /*----------------------
  427. **      VECICON
  428. **      This function is omitted from 'C' library
  429. **      Use Drawicon()
  430. **----------------------
  431. */
  432.  
  433. /*----------------------
  434. **      DATAPC f 40
  435. **----------------------
  436. */
  437. int datapc(int a)
  438. {
  439.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 40);
  440. }
  441.  
  442. /*----------------------
  443. **      DATARANGE f 41
  444. **----------------------
  445. */
  446. int datarange(int a,int b)
  447. {
  448.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 41);
  449. }
  450.  
  451. /*----------------------
  452. **      EDSTRING f 42
  453. **----------------------
  454. */
  455. int edstring(int a,int b,int c,int d,char *st)
  456. {
  457.   stlen = dgestlen(st);
  458.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 42);
  459. }
  460. /*----------------------
  461. **      CLRSTRING f 43
  462. **----------------------
  463. */
  464. int clrst()
  465. {
  466.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 43);
  467. }
  468.  
  469. /*----------------------
  470. **      PLOTON f 44
  471. **----------------------
  472. */
  473. int ploton(int a,int b,int c,int d,int e)
  474. {
  475.   if (dgeut) dgeinst();
  476.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 44);
  477. }
  478.  
  479. /*----------------------
  480. **      PLOTCSET f 45
  481. **----------------------
  482. */
  483. int plotcset(int a,int b,int c,int d)
  484. {
  485.   if (dgeut) dgeinst();
  486.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 45);
  487. }
  488.  
  489. /*----------------------
  490. **      PLOTOFF f 46
  491. **----------------------
  492. */
  493. int plotoff()
  494. {
  495.   if (dgeut) dgeinst();
  496.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 46);
  497. }
  498.  
  499. /*----------------------
  500. **      PRINTFILE 47
  501. **----------------------
  502. */
  503. int printfile(int a,char *st)
  504. {
  505.   stlen = dgestlen(st);
  506.   if (dgeut) dgeinst();
  507.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 47);
  508. }
  509.  
  510. /*----------------------
  511. **      PRINTPCL  f 48
  512. **----------------------
  513. */
  514. int printpcl(int a,int b,int c,int d)
  515. {
  516.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 48);
  517. }
  518.  
  519. /*----------------------
  520. **      TIMEGRAPH f 49
  521. **----------------------
  522. */
  523. int timegraph(int a,int b,int c,int d,int e,int f,int g,int h)
  524. {
  525.   return (*dgemgen[dgedid])(st,stlen,h,g,f,e,d,c,b,a, 49);
  526. }
  527.  
  528. /*----------------------
  529. **      TIMEDATA f 50
  530. **----------------------
  531. */
  532. int timedata(int a,int b,int c,int d)
  533. {
  534.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 50);
  535. }
  536.  
  537. /*----------------------
  538. **      GETASIN f 51
  539. **----------------------
  540. */
  541. double getasin(int a,int b)
  542. {
  543.   int i,stlen=14; char st[15];
  544.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  545.   if (dgeut) dgeinst();
  546.   rval = (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 51);
  547.   return dgeatof(st);
  548. }
  549.  
  550. /*----------------------
  551. **      MOVEXY f 52
  552. **----------------------
  553. */
  554. int movexy(int a,int b)
  555. {
  556.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 50);
  557. }
  558.  
  559. /*----------------------
  560. **      DRAWXY f 53
  561. **----------------------
  562. */
  563. int drawxy(int a,int b,int c,int d,int e,int f)
  564. {
  565.   return (*dgemgen[dgedid])(st,stlen,0,0,f,e,d,c,b,a, 53);
  566. }
  567.  
  568. /*----------------------
  569. **      PLOTPEN f 54
  570. **----------------------
  571. */
  572. int plotpen(int a,int b,int c)
  573. {
  574.   if (dgeut) dgeinst();
  575.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 54);
  576. }
  577.  
  578. /*----------------------
  579. **      LABELX f 55
  580. **----------------------
  581. */
  582. int labelx(int a,int b,int c,int d,int e,int f,int g,char *st)
  583. {
  584.   stlen = dgestlen(st);
  585.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 55);
  586. }
  587.  
  588. /*----------------------
  589. **      LABELY  f 56
  590. **----------------------
  591. */
  592. int labely(int a,int b,int c,int d,int e,int f,int g,char *st)
  593. {
  594.   stlen = dgestlen(st);
  595.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 56);
  596. }
  597.  
  598. /*----------------------
  599. **      LABELPIE  f 57
  600. **----------------------
  601. */
  602. int labelpie(int a,int b,int c,int d,int e,int f,char *st)
  603. {
  604.   stlen = dgestlen(st);
  605.   return (*dgemgen[dgedid])(st,stlen,0,0,f,e,d,c,b,a, 57);
  606. }
  607.  
  608. /*----------------------
  609. **      GETCURX   f 58
  610. **----------------------
  611. */
  612. int getcurx()
  613. {
  614.   int i, stlen=14; char st[15];
  615.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  616.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 58);
  617.   return dgeatoi(st);
  618. }
  619.  
  620. /*----------------------
  621. **      GETCURY   f 59
  622. **----------------------
  623. */
  624. int getcury()
  625. {
  626.   int i, stlen=14; char st[15];
  627.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  628.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 59);
  629.   return dgeatoi(st);
  630. }
  631.  
  632. /*----------------------
  633. **      GETCC   f 60
  634. **----------------------
  635. */
  636. double getcc()
  637. {
  638.   int i, stlen=14; char st[15];
  639.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  640.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 60);
  641.   return dgeatof(st);
  642. }
  643.  
  644. /*----------------------
  645. **      GETMAX   f 61
  646. **----------------------
  647. */
  648. double getmax()
  649. {
  650.   int i, stlen=14; char st[15];
  651.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  652.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 61);
  653.   return dgeatof(st);
  654. }
  655.  
  656. /*----------------------
  657. **      GETMEAN   f 62
  658. **----------------------
  659. */
  660. double getmean()
  661. {
  662.   int i, stlen=14; char st[15];
  663.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  664.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 62);
  665.   return dgeatof(st);
  666. }
  667.  
  668. /*----------------------
  669. **      GETMIN   f 63
  670. **----------------------
  671. */
  672. double getmin()
  673. {
  674.   int i, stlen=14; char st[15];
  675.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  676.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 63);
  677.   return dgeatof(st);
  678. }
  679.  
  680. /*----------------------
  681. **      GETSD   f 64
  682. **----------------------
  683. */
  684. double getsd()
  685. { int i, stlen=14; char st[15];
  686.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  687.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 64);
  688.   return dgeatof(st);
  689. }
  690.  
  691. /*----------------------
  692. **      MINMAX  f 65
  693. **----------------------
  694. */
  695. int minmax(int a,int b,int c)
  696. {
  697.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 65);
  698. }
  699.  
  700. /*----------------------
  701. **      CLRWIN f 66
  702. **----------------------
  703. */
  704. int clrwin(int a,int b,int c,int d)
  705. {
  706.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 66);
  707. }
  708.  
  709.  
  710. /*----------------------
  711. **      MPCONFIG f 67
  712. **
  713. **----------------------
  714. */
  715. int mpconfig(int a,int b,int *a1,int *a2,int *a3,int *a4)
  716. {
  717.   int seqflag=256;
  718.   if (dgeut) dgeinst();
  719.   rval = (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a | seqflag, 67);
  720.     seqflag = seqflag << 1;
  721.   rval |= (*dgemgen[dgedid])(st,stlen,a1[7],a1[6],a1[5],a1[4],a1[3],a1[2],a1[1],a1[0] | seqflag,67 );
  722.     seqflag = seqflag << 1;
  723.   rval |= (*dgemgen[dgedid])(st,stlen,a2[7],a2[6],a2[5],a2[4],a2[3],a2[2],a2[1],a2[0] | seqflag,67 );
  724.     seqflag = seqflag << 1;
  725.   rval |= (*dgemgen[dgedid])(st,stlen,a3[7],a3[6],a3[5],a3[4],a3[3],a3[2],a3[1],a3[0] | seqflag,67 );
  726.     seqflag = seqflag << 1;
  727.   rval |= (*dgemgen[dgedid])(st,stlen,a4[7],a4[6],a4[5],a4[4],a4[3],a4[2],a4[1],a4[0] | seqflag,67 );
  728.   return rval;
  729. }
  730.  
  731. /*----------------------
  732. **      GETVIDEO f 69
  733. **----------------------
  734. */
  735. int getvideo(int a)
  736. {
  737.   int i, stlen=14; char st[15];
  738.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  739.   if (dgeut) dgeinst();
  740.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 69);
  741.   return dgeatoi(st); }
  742.  
  743. /*----------------------
  744. **      USERICON f 70
  745. **----------------------
  746. */
  747. int usericon(int a,char *st)
  748. {
  749.   return (*dgemgen[dgedid])(st,32,0,0,0,0,0,0,0,a, 70);
  750. }
  751.  
  752. /*----------------------
  753. **      DRAWICON  f 71
  754. **----------------------
  755. */
  756. int drawicon(int a,int b,int c,int d,int e)
  757. {
  758.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 71);
  759. }
  760.  
  761. /*----------------------
  762. **      MRESET f 72
  763. **----------------------
  764. */
  765. int mreset()
  766. {
  767.   int i, stlen=14; char st[15];
  768.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  769.   if (dgeut) dgeinst();
  770.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 72);
  771.   return dgeatoi(st);
  772. }
  773.  
  774. /*----------------------
  775. **      MCURON f 73
  776. **----------------------
  777. */
  778. int mcuron()
  779. {
  780.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 73);
  781. }
  782.  
  783. /*----------------------
  784. **      MCUROFF f 74
  785. **----------------------
  786. */
  787. int mcuroff()
  788. {
  789.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 74);
  790. }
  791.  
  792. /*----------------------
  793. **      MFIXPOS f 75
  794. **----------------------
  795. */
  796. int mfixpos(int a,int b)
  797. {
  798.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 75);
  799. }
  800.  
  801. /*----------------------
  802. **      MSTATUS f 76
  803. **----------------------
  804. */
  805. int mstatus()
  806. {
  807.   int i, stlen=14; char st[15];
  808.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  809.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 76);
  810.   return dgeatoi(st);
  811. }
  812.  
  813. /*----------------------
  814. **      MGETX    f 77
  815. **----------------------
  816. */
  817. int mgetx()
  818. {
  819.   int i, stlen=14; char st[15];
  820.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  821.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0,77);
  822.   return dgeatoi(st);
  823. }
  824.  
  825. /*----------------------
  826. **      MGETY  f 78
  827. **----------------------
  828. */
  829. int mgety()
  830. {
  831.   int i, stlen=14; char st[15];
  832.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  833.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 78);
  834.   return dgeatoi(st);
  835. }
  836.  
  837. /*----------------------
  838. **      MSETWIN  f 79
  839. **----------------------
  840. */
  841. int msetwin(int a,int b,int c,int d)
  842. {
  843.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 79);
  844. }
  845.  
  846. /*----------------------
  847. **      MMOTION f 80
  848. **----------------------
  849. */
  850. int mmotion()
  851. {
  852.   int i, stlen=14; char st[15];
  853.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  854.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 80);
  855.   return dgeatoi(st);
  856. }
  857.  
  858. /*----------------------
  859. **      MCURTYPE f 81
  860. **----------------------
  861. */
  862. int mcurtype(int a)
  863. {
  864.   if(dgeut) dgeinst();
  865.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 81);
  866. }
  867.  
  868. /*----------------------
  869. **      PICWRITE f 82
  870. **----------------------
  871. */
  872. int picwrite(int a,int b,int c,int d,int e,char *st)
  873. {
  874.   stlen = dgestlen(st);
  875.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 82);
  876. }
  877.  
  878. /*----------------------
  879. **      PICREAD    f 83
  880. **----------------------
  881. */
  882. int picread(int a,int b,int c,char *st)
  883. {
  884.   stlen = dgestlen(st);
  885.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 83);
  886. }
  887.  
  888. /*----------------------
  889. **      GANTT  f 84
  890. **----------------------
  891. */
  892. int gantt(int a,int b,int c,int d,int e)
  893. {
  894.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 84);
  895. }
  896.  
  897. /*----------------------
  898. **      LOADVTEXT f 85
  899. **----------------------
  900. */
  901. int loadvtext(char *st)
  902. {
  903.   stlen = dgestlen(st);
  904.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 85);
  905. }
  906.  
  907. /*----------------------
  908. **      DRAWVTEXT  f 86
  909. **----------------------
  910. */
  911. int drawvtext(int a,int b,int c,int d,int e,int f,int g,int h,char *st)
  912. {
  913.   stlen = dgestlen(st);
  914.   return (*dgemgen[dgedid])(st,stlen,h,g,f,e,d,c,b,a, 86);
  915. }
  916.  
  917. /*----------------------
  918. **      LOADICON f 87
  919. **----------------------
  920. */
  921. int loadicon(char *st)
  922. {
  923.   stlen = dgestlen(st);
  924.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 87);
  925. }
  926.  
  927. /*----------------------
  928. **      SETPRN  f 88
  929. **----------------------
  930. */
  931. int setprn(int a,int b,int c,int d,int e)
  932. {
  933.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 88);
  934. }
  935.  
  936. /*----------------------
  937. **      XORBLOCK  f 89
  938. **----------------------
  939. */
  940. int xorblock(int a,int b,int c,int d,int e)
  941. {
  942.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 89);
  943. }
  944.  
  945. /*----------------------
  946. **      GETFONTINF   f 90
  947. **----------------------
  948. */
  949. double getfontinf(int a)
  950. {
  951.   int i, stlen=14; char st[15];
  952.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i]=0;
  953.   if (dgeut) dgeinst();
  954.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 90);
  955.   return dgeatof(st);
  956. }
  957.  
  958. /*----------------------
  959. **      LOADMPRN   f 91
  960. **----------------------
  961. */
  962. int loadmprn(int a,char *st)
  963. {
  964.   stlen = dgestlen(st);
  965.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 91);
  966. }
  967.  
  968. /*----------------------
  969. **      MSETHOT    f 92
  970. **----------------------
  971. */
  972. int msethot(int a,int b,int c,int d,int e)
  973. {
  974.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 92);
  975. }
  976.  
  977. /*----------------------
  978. **      MGETHOT   f 93
  979. **----------------------
  980. */
  981. int mgethot()
  982. {
  983.   int i, stlen=14; char st[15];
  984.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  985.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 93);
  986.   return dgeatoi(st);
  987. }
  988.  
  989. /*----------------------
  990. **      ENUMMPRN f 94
  991. **----------------------
  992. */
  993. char *enummprn(int a,char *st)
  994. {
  995.   char *temp;
  996.   static char inst[80];
  997.  
  998.   if (dgeut) dgeinst();
  999.   temp = inst;
  1000.   stlen = dgestlen(st);
  1001.   stlen = (stlen < 80) ? stlen : 80;
  1002.   while( (*temp++ = *st++) != 0) ;
  1003.   (*dgemgen[dgedid])(inst,stlen,0,0,0,0,0,0,0,a, 94);
  1004.   return inst;
  1005. }
  1006.  
  1007. /*----------------------
  1008. **      PRINTPS  f 95
  1009. **----------------------
  1010. */
  1011. int printps(int a,int b,int c,int d,int e,int f)
  1012. {
  1013.   return (*dgemgen[dgedid])(st,stlen,0,0,f,e,d,c,b,a, 95);
  1014. }
  1015.  
  1016. /*----------------------
  1017. **      VPON f 96
  1018. **----------------------
  1019. */
  1020. int vpon(int a,int b,int c,int d,int e,int f,int g)
  1021. {
  1022.   return (*dgemgen[dgedid])(st,stlen,0,g,f,e,d,c,b,a, 96);
  1023. }
  1024.  
  1025. /*----------------------
  1026. **      VPOFF f 97
  1027. **----------------------
  1028. */
  1029. int vpoff(int a)
  1030. {
  1031.   if (dgeut) dgeinst();
  1032.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 97);
  1033. }
  1034.  
  1035. /*----------------------
  1036. **      PSFONT f 98
  1037. **----------------------
  1038. */
  1039. int psfont(char *st)
  1040. {
  1041.   stlen = dgestlen(st);
  1042.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,0, 98);
  1043. }
  1044.  
  1045. /*----------------------
  1046. **      SETRGBPAL  f 99
  1047. **----------------------
  1048. */
  1049. int setrgbpal(int a,int b)
  1050. {
  1051.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 99);
  1052. }
  1053.  
  1054. /*----------------------
  1055. **      SETRGBDAC  f 100
  1056. **----------------------
  1057. */
  1058. int setrgbdac(int a,int b,int c,int d)
  1059. {
  1060.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 100);
  1061. }
  1062.  
  1063. /*----------------------
  1064. **      CLIPWIN f 101
  1065. **----------------------
  1066. */
  1067. int clipwin(int a,int b,int c,int d)
  1068. {
  1069.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,d,c,b,a, 101);
  1070. }
  1071.  
  1072. /*----------------------
  1073. **      GETPIX    f 102
  1074. **----------------------
  1075. */
  1076. int getpix(int a,int b)
  1077. {
  1078.   int i, stlen=14; char st[15];
  1079.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i]=0;
  1080.   if (dgeut) dgeinst();
  1081.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 102);
  1082.   return dgeatoi(st);
  1083. }
  1084.  
  1085. /*----------------------
  1086. **      GETBF    f 103
  1087. **----------------------
  1088. */
  1089. double getbf(int a)
  1090. {
  1091.   int i, stlen=14; char st[15];
  1092.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i]=0;
  1093.   if (dgeut) dgeinst();
  1094.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 103);
  1095.   return dgeatof(st);
  1096. }
  1097.  
  1098. /*----------------------
  1099. **      SNAPCOPY f 104
  1100. **----------------------
  1101. */
  1102. int snapcopy(int a,int b,int c,int d,int e)
  1103. {
  1104.   int i, stlen=14; char st[15];
  1105.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  1106.   (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 104);
  1107.   return dgeatoi(st);
  1108. }
  1109.  
  1110. /*----------------------
  1111. **      SNAPPASTE f 105
  1112. **----------------------
  1113. */
  1114. int snappaste(int a,int b,int c)
  1115. {
  1116.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,c,b,a, 105);
  1117. }
  1118.  
  1119. /*----------------------
  1120. **      SNAPKILL f 106
  1121. **----------------------
  1122. */
  1123. int snapkill(int a)
  1124. {
  1125.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a, 106);
  1126. }
  1127.  
  1128. /*----------------------
  1129. **      GETSNAPINF  f 107
  1130. **----------------------
  1131. */
  1132. int getsnapinf(int a)
  1133. {
  1134.   int i, stlen=14; char st[15];
  1135.   for(i = 0 ; i < 14 ; i++) st[i] = ' '; st[i] = 0;
  1136.   (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,0,a,107);
  1137.   return dgeatoi(st);
  1138. }
  1139.  
  1140. /*----------------------
  1141. **      PRNDEV f 108
  1142. **----------------------
  1143. */
  1144. int prndev(int a,int b)
  1145. {
  1146.   return (*dgemgen[dgedid])(st,stlen,0,0,0,0,0,0,b,a, 108);
  1147. }
  1148.  
  1149. /*----------------------
  1150. **      PCLFONT f 109
  1151. **----------------------
  1152. */
  1153. int pclfont(int a,int b,int c,int d,int e)
  1154. {
  1155.   return (*dgemgen[dgedid])(st,stlen,0,0,0,e,d,c,b,a, 109);
  1156. }
  1157.  
  1158. /*------------------------
  1159. **      dgeatof
  1160. **------------------------
  1161. */
  1162. double dgeatof(char *st)
  1163. {
  1164.   char c;
  1165.   int i, minus = 1, man = -1;
  1166.   double val=0,mult=0.1;
  1167.  
  1168.   for(i = 0 ; i < dgestlen(st) ; i++)
  1169.   {
  1170.     c = st[i];
  1171.     if(c == ' ') continue;
  1172.     if(c == '-') {minus = -1; continue; }
  1173.     if(c == '.') {man = 0; continue; }
  1174.     if(c > '9' || c < '0') continue;
  1175.     if(man) { val *= 10; val += (c-'0'); continue; }
  1176.     else {val += ((float)(c-'0'))*mult; mult *= 0.1; continue; }
  1177.   }
  1178.  
  1179.   return (val * minus);
  1180. }
  1181.  
  1182. /*------------------------
  1183. **      dgeatoi
  1184. **------------------------
  1185. */
  1186. int dgeatoi(char *st)
  1187. { int val=0,sig=0; char c;
  1188.   for(;;)
  1189.   { if((c=*st++) == ' ') continue;        /* ignore leading spaces */
  1190.     if(c == '-') {sig = 1; continue; }
  1191.     if(c>'9' || c<'0' || c=='.') break;
  1192.     val = val*10 + c-'0';
  1193.   }
  1194.   if( sig == 1 ) val = -val;
  1195. return val; }
  1196.  
  1197. /*------------------------
  1198. **      dgestlen
  1199. **------------------------
  1200. */
  1201. int dgestlen(char *st)
  1202. { int i=0; while(*st++ != 0) i++; return i; }
  1203.  
  1204. /*------------------------
  1205. **      dgeinst
  1206. **------------------------
  1207. */
  1208. int dgeinst()
  1209. {
  1210.   int i;
  1211.   for(i = 4 ; i >=0 ; i--)  /* dummy call to datareset */
  1212.   { rval = (*dgemgen[i])(st,stlen,0,0,0,0,0,0,0,0, 19);
  1213.     if(rval != 6) {dgedid = i; dgeut = 0; break; } }
  1214.   return (rval);
  1215. }
  1216.